From: Adel Gadllah Date: Fri, 4 Mar 2011 07:57:46 +0000 (+0100) Subject: xdndHandler: Correctly disconnect the window group visibility handler X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~8793 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=0065e2cfac7c59d0f55d37332f76aa1a50a49a42;p=gnome-shell.git xdndHandler: Correctly disconnect the window group visibility handler --- diff --git a/js/ui/xdndHandler.js b/js/ui/xdndHandler.js index d33f8afce..fe8633abd 100644 --- a/js/ui/xdndHandler.js +++ b/js/ui/xdndHandler.js @@ -4,7 +4,6 @@ const Clutter = imports.gi.Clutter; const Lang = imports.lang; const Shell = imports.gi.Shell; const Signals = imports.signals; -const Mainloop = imports.mainloop; const DND = imports.ui.dnd; function XdndHandler() { @@ -41,9 +40,14 @@ XdndHandler.prototype = { // Called when the user cancels the drag (i.e release the button) _onLeave: function() { if (this._windowGroupVisibilityHandlerId != 0) { - Mainloop.source_remove(this._windowGroupVisibilityHandlerId); + global.window_group.disconnect(this._windowGroupVisibilityHandlerId); this._windowGroupVisibilityHandlerId = 0; } + if (this._cursorWindowClone) { + this._cursorWindowClone.destroy(); + this._cursorWindowClone = null; + } + this.emit('drag-end'); }, @@ -77,8 +81,7 @@ XdndHandler.prototype = { // Make sure that the clone has the same position as the source this._cursorWindowClone.add_constraint(constraint_position); } else { - if (this._cursorWindowClone) - { + if (this._cursorWindowClone) { this._cursorWindowClone.destroy(); this._cursorWindowClone = null; }